/**
 * 
 */
package com.google.code.netz.wfe.events;

/**
 * @author <a href='mailto:rahul.thakur.xdev@gmail.com'>Rahul Thakur</a>
 * @since 1.0
 * @version $d$
 * @deprecated Experimental! might not be used.
 */
public class WorkflowEvent extends TypedEvent {

	public enum WorkflowEventType implements IEventType {

		/**
		 * Implies that a ICase has been initialised and about to start
		 * processing.
		 */
		WORKFLOW_INITIALISED("Workflow Initialised"),

		/**
		 * Implies that a ICase has finished and is terminated.
		 */
		WORKFLOW_TERMINATED("Workflow Terminated"), ;

		private String type;

		/**
		 * @param type
		 */
		private WorkflowEventType(String type) {
			this.type = type;
		}

		@Override
		public String asString() {
			return type;
		}

		/**
		 * {@inheritDoc}
		 * 
		 * @see com.google.code.netz.wfe.events.IEventType#allEventTypes()
		 */
		@Override
		public IEventType[] allEventTypes() {
			return values();
		}

	}

	/**
	 * 
	 * @param source
	 * @param type
	 */
	public WorkflowEvent(Object source, IEventType type) {
		super(source, type);
		// TODO Auto-generated constructor stub
	}
}
